#pragma once
#include "Common.h"
#include <vector>
#include <string>

class SceneDrawable;
class Window;
class Renderer;
class SceneRendererBridge;
class Camera;

class EXPORT SceneManager
{
	int wWidth;
	int wHeight;

	std::vector<SceneDrawable*> drawables;
	std::vector<SceneDrawable*>::iterator drawablesIt;

	std::vector<Camera*> cameras;
	std::vector<Camera*>::iterator camerasIt;
	Camera * activeCamera;

	Renderer * renderer;
	SceneRendererBridge * rendererBrigde;

	friend class Window;
	SceneManager(int width,int height);
	~SceneManager(void);
public:
	
	void DrawScene();

	Camera * CreateCamera(std::string camName);
	void RemoveCamera(Camera * camera);
	void RemoveAllCameras();
	void SetActiveCamera(Camera * camera);
	Camera * GetActiveCamera();
};

